Database Tutorials PHP দিয়ে File Uploading System তৈরি করা গাইড ও নোট

332

PHP দিয়ে একটি File Uploading System তৈরি করা একটি সাধারণ কিন্তু গুরুত্বপূর্ণ কাজ, যা অনেক ওয়েব অ্যাপ্লিকেশনে ব্যবহৃত হয়। এই সিস্টেমের মাধ্যমে ব্যবহারকারী ফাইল আপলোড করতে পারে এবং সেই ফাইল সঠিকভাবে সার্ভারে সংরক্ষণ করা হয়।

এই টিউটোরিয়ালে PHP এবং MySQL ব্যবহার করে একটি ফাইল আপলোড সিস্টেম তৈরি করার প্রক্রিয়া দেখানো হবে, যেখানে ব্যবহারকারী ফাইল আপলোড করবে এবং সেই ফাইলের তথ্য ডেটাবেসে সংরক্ষণ করা হবে।


1. ফাইল আপলোড সিস্টেমের উপাদান

  • HTML ফর্ম: ব্যবহারকারী ফাইল আপলোড করার জন্য একটি ফর্ম থাকবে।
  • PHP স্ক্রিপ্ট: ফাইল গ্রহণ এবং ডাটাবেসে সংরক্ষণের জন্য PHP স্ক্রিপ্ট থাকবে।
  • MySQL ডেটাবেস: আপলোড করা ফাইলের তথ্য যেমন ফাইলের নাম, ফাইলের টাইপ এবং ফাইলের সাইজ ডেটাবেসে সংরক্ষণ করা হবে।

2. ডেটাবেস টেবিল তৈরি করা

ফাইলের তথ্য সংরক্ষণের জন্য একটি টেবিল তৈরি করতে হবে। এখানে আমরা একটি uploads নামক টেবিল তৈরি করব, যেখানে ফাইলের নাম, সাইজ, এবং টাইপ সংরক্ষণ করা হবে।

2.1 SQL কোড: uploads টেবিল তৈরি করা

CREATE TABLE uploads (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    filename VARCHAR(255) NOT NULL,
    filetype VARCHAR(50) NOT NULL,
    filesize INT(11) NOT NULL,
    uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

এই টেবিলের মাধ্যমে আমরা ফাইলের নাম (filename), টাইপ (filetype), সাইজ (filesize) এবং আপলোড করার সময় (uploaded_at) সংরক্ষণ করব।


3. HTML ফর্ম তৈরি করা

HTML ফর্ম ব্যবহারকারীকে ফাইল আপলোড করার সুযোগ দেবে। এই ফর্মে একটি file input ফিল্ড থাকবে, যার মাধ্যমে ফাইল আপলোড করা যাবে।

3.1 HTML ফর্ম কোড:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
</head>
<body>
    <h2>Upload Your File</h2>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <label for="file">Select file:</label>
        <input type="file" name="file" id="file" required>
        <button type="submit" name="submit">Upload</button>
    </form>
</body>
</html>

এখানে enctype="multipart/form-data" ব্যবহৃত হয়েছে, যা ফাইল আপলোড করার জন্য প্রয়োজনীয়।


4. PHP স্ক্রিপ্ট লিখা

ফাইল আপলোড করার জন্য PHP স্ক্রিপ্ট ব্যবহার করা হবে। এই স্ক্রিপ্টটি ফাইলটি গ্রহণ করবে, তার সঠিকতা পরীক্ষা করবে এবং তারপর সেই ফাইলটি সার্ভারে আপলোড করবে এবং ডেটাবেসে তার তথ্য সংরক্ষণ করবে।

4.1 PHP স্ক্রিপ্ট: upload.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";

// MySQLi সংযোগ স্থাপন
$conn = new mysqli($servername, $username, $password, $dbname);

// সংযোগ চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// ফাইল আপলোড হলে কোড চালানো
if (isset($_POST['submit'])) {
    // ফাইলের তথ্য প্রাপ্তি
    $file = $_FILES['file'];

    // ফাইলের নাম, সাইজ, টাইপ এবং টেম্পরারি লোকেশন
    $filename = $file['name'];
    $filetmp = $file['tmp_name'];
    $filetype = $file['type'];
    $filesize = $file['size'];

    // ফাইলের এক্সটেনশন চেক করা
    $allowed_extensions = array('jpg', 'jpeg', 'png', 'gif', 'pdf', 'docx');
    $file_ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));

    if (in_array($file_ext, $allowed_extensions)) {
        // ফাইল সাইজ চেক করা (5MB এর বেশি না হয়)
        if ($filesize <= 5000000) {
            // নতুন ফাইল নাম তৈরি করা (ফাইলটি সেভ করা হবে)
            $new_filename = uniqid('', true) . "." . $file_ext;
            $destination = 'uploads/' . $new_filename;

            // ফাইল সার্ভারে আপলোড করা
            if (move_uploaded_file($filetmp, $destination)) {
                // ডেটাবেসে ফাইলের তথ্য সংরক্ষণ করা
                $sql = "INSERT INTO uploads (filename, filetype, filesize) VALUES ('$new_filename', '$filetype', '$filesize')";
                if ($conn->query($sql) === TRUE) {
                    echo "File uploaded and data saved successfully!";
                } else {
                    echo "Error: " . $sql . "<br>" . $conn->error;
                }
            } else {
                echo "Failed to upload file!";
            }
        } else {
            echo "File size is too large. Maximum allowed size is 5MB.";
        }
    } else {
        echo "Invalid file type. Allowed types are JPG, JPEG, PNG, GIF, PDF, DOCX.";
    }
}

$conn->close();
?>

এখানে যা করা হয়েছে:

  1. ফাইলের তথ্য গ্রহণ: PHP এর $_FILES সুপারগ্লোবাল ব্যবহার করে ফাইলের তথ্য যেমন নাম, টাইপ, সাইজ, এবং টেম্পরারি লোকেশন নেওয়া হয়েছে।
  2. ফাইলের এক্সটেনশন চেক: আপলোডের জন্য নির্দিষ্ট এক্সটেনশন (যেমন JPG, PNG, PDF ইত্যাদি) চেক করা হয়েছে।
  3. ফাইল সাইজ চেক: ফাইলের সাইজ 5MB এর বেশি না হয় তা নিশ্চিত করা হয়েছে।
  4. ফাইল আপলোড: ফাইলটি সার্ভারে আপলোড করার জন্য move_uploaded_file() ফাংশন ব্যবহার করা হয়েছে।
  5. ডেটাবেসে তথ্য সংরক্ষণ: ফাইলের নাম, টাইপ এবং সাইজ ডেটাবেসের uploads টেবিলে সংরক্ষণ করা হয়েছে।

5. ফাইল আপলোড ডিরেক্টরি তৈরি করা

ফাইলগুলি সার্ভারে সঠিকভাবে আপলোড করার জন্য একটি uploads/ ডিরেক্টরি তৈরি করতে হবে।

5.1 uploads ডিরেক্টরি তৈরি করুন:

mkdir uploads

এই ডিরেক্টরিটি ফাইল আপলোড করার জন্য ব্যবহৃত হবে। নিশ্চিত করুন যে সার্ভারে এই ডিরেক্টরির লেখার অনুমতি আছে।


6. ফাইল আপলোড এবং ডেটাবেসে তথ্য সংরক্ষণ

এখন, যখন আপনি HTML ফর্মটি পূর্ণ করবেন এবং Upload বাটনে ক্লিক করবেন, ফাইলটি সার্ভারে আপলোড হবে এবং তার তথ্য ডেটাবেসে সংরক্ষিত হবে। সফলভাবে আপলোড হলে, একটি মেসেজ দেখানো হবে।


উপসংহার

PHP দিয়ে ফাইল আপলোড সিস্টেম তৈরি করা সহজ এবং কার্যকরী। $_FILES সুপারগ্লোবাল ব্যবহার করে ফাইলের তথ্য গ্রহণ করা যায়, এবং move_uploaded_file() ফাংশন দিয়ে ফাইলটি সার্ভারে আপলোড করা হয়। সঠিক ফাইল সাইজ, এক্সটেনশন চেকিং, এবং ডেটাবেসে তথ্য সংরক্ষণ সহ, এই সিস্টেমটি সহজে তৈরি করা যায় এবং বিভিন্ন ওয়েব অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...